#ifndef LIBYUV_TEST_NEON_H
#define LIBYUV_TEST_NEON_H

#include <jni.h>
#include <android/log.h>
#include <libyuv.h>
#include <ctime>

#define SUBSAMPLE(v, a) ((((v) + (a)-1)) / (a))
#define IS_ALIGNED(p, a) (!((uintptr_t)(p) & ((a)-1)))
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,"testNEON",__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,"testNEON",__VA_ARGS__)
#define GETTIME(t) gettimeofday(&t, nullptr)

#ifdef __cplusplus
extern "C" {
#endif

JNIEXPORT void JNICALL
Java_com_andova_libyuv_TestNEON_00024Companion_TestNEON_1VTRN(JNIEnv *env, jobject thiz, jbyteArray src_u, jbyteArray src_v, jbyteArray dst_uv, jint stride);

JNIEXPORT void JNICALL
Java_com_andova_libyuv_TestNEON_00024Companion_TestHalfMerge(JNIEnv *env, jobject thiz, jbyteArray src_u, jbyteArray src_v, jbyteArray dst_uv, jint stride);

JNIEXPORT void JNICALL
Java_com_andova_libyuv_TestNEON_00024Companion_TestNEON_1VPADDL(JNIEnv *env, jobject thiz, jbyteArray src_u, jbyteArray src_v, jbyteArray dst_u, jbyteArray dst_v, jint stride);

JNIEXPORT void JNICALL
Java_com_andova_libyuv_TestNEON_00024Companion_TestNEON_1VPADAL(JNIEnv *env, jobject thiz, jbyteArray src_u, jbyteArray src_v, jbyteArray dst_u, jbyteArray dst_v, jint stride);

JNIEXPORT void JNICALL
Java_com_andova_libyuv_TestNEON_00024Companion_TestNEON_1VQRSHRN(JNIEnv *env, jobject thiz, jbyteArray src_u, jbyteArray src_v, jbyteArray dst_u, jbyteArray dst_v, jint stride);

#ifdef __cplusplus
}
#endif


#endif //LIBYUV_TEST_NEON_H
